He
/ him
07702834298
Email me
Harlow,
Essex, UK
Connect with
me
View my CV
---
title: "CV"
output:
flexdashboard::flex_dashboard:
css: "style.css"
social: ["menu"]
source_code: embed
orientation: rows
vertical_layout: fill
theme:
version: 4
bootswatch: minty
---
```{r setup, include=FALSE, echo=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(DT)
library(tidyr)
library(flexdashboard)
library(leaflet)
library(readxl)
library(crosstalk)
library(ggplot2)
library(plotly)
library(fmsb)
library(viridis)
library(fontawesome)
```
```{r data, include=FALSE, echo=FALSE}
input <- read_excel("input.xlsx", sheet = "JobHistory2") |> mutate(To = replace_na(To, Sys.Date()))
df <- input |>
mutate(FromFormat = format(as.Date(input$From), '%b-%Y'),
ToFormat = format(as.Date(input$To), '%b-%Y')
)
# ,
# tag = paste('<font size="+2"> <b>', Position, '</b> at', Company,
# '</font> </br><p> <font size="-2"> <i>', FromFormat, ' to ', ToFormat, '</i> </font> </p> <hr>
# <li>', Desc1, '</li> <li>', Desc2, '</li> <li>', Desc3, '</li> <li>', Desc4, '</li> <li>', Desc5, '</li>'))
shared_df <- SharedData$new(df)
pal <- colorFactor(viridis(3, direction = -1), input$Company)
```
Mark Ustel
=====================================
Row {data-height=200}
-------------------------------------
###
```{r timeline, echo=FALSE}
plot_ly(data = shared_df,
x = ~From,
y = ~rep(0,6),
color = ~Company,
colors = viridis(3, direction = -1),
type = 'scatter',
mode = 'markers',
opacity = 0.65,
text = ~paste('<b>', Position, '</b> at', Company, '</br> <i> From ', FromFormat, ' to ', ToFormat, '</i>'),
marker = list(size = 30)) |>
highlight(on = "plotly_hover", off = "plotly_doubleclick") |>
layout(title = list(text = "Work History",
x = 0.05,
y = 0.9),
xaxis = list(title = FALSE,
showticklabels = TRUE,
showgrid = TRUE),
yaxis = list(title = FALSE,
showticklabels = FALSE,
showgrid = FALSE),
showlegend = FALSE) |>
config(displayModeBar = FALSE)
```
Row {data-height=500}
-------------------------------------
###
```{r workexperience, echo=FALSE}
datatable(shared_df, escape=FALSE,
options = list(columnDefs = list(list(visible=FALSE, targets=c(seq(1:9),c(11,12)))),
pageLength = 1, lengthChange = FALSE, info = FALSE,
style = 'auto',
language = list(search = "<i class='glyphicon glyphicon-search'></i>"),
searchHighlight = TRUE,
headerCallback = JS(
"function(thead, data, start, end, display){",
" $(thead).remove();",
"}")
) )
```
###
#### Mark Ustel
Passionate and inquisitive analytically minded <b>Data Scientist</b>, strongly believing in the infusion of Data Science with <big>Design Thinking</big>. Combining strengths from both approaches ensures focus on the customer and problem definition, whilst delivering a <big>creative</big> and highly <b>analytical</b> solution with tangible and quantifiable outcomes. An experienced user of both R and Python, having a strong bias towards <big><b>R</b></big> due to its superior statistical ability and <big>interactive</big> web apps in <b>Shiny</b>.
</br>
<hr>
</br>
`r fa(name = "circle-user", fill = "#78c2ad", margin_left = "2em", margin_right = "2em")`He / him
`r fa(name = "phone", fill = "#6cc3d5", margin_left = "2em", margin_right = "2em")`07702834298
`r fa(name = "envelope-open", fill = "#78c2ad", margin_left = "2em", margin_right = "2em")`[Email me](mailto:mark.ustel@googlemail.com)
`r fa(name = "location-pin", fill = "#6cc3d5", margin_left = "2em", margin_right = "2em")`Harlow, Essex, UK
`r fa(name = "linkedin", fill = "#78c2ad", margin_left = "2em", margin_right = "2em")`[Connect with me](https://linkedin.com/in/mark-ustel-1342b067)
`r fa(name = "github", fill = "#6cc3d5", margin_left = "2em", margin_right = "2em")`[View my CV](https://mark-ustel.github.io/CV/)
###
```{r map, echo=FALSE}
leaflet() |>
addProviderTiles(
providers$CartoDB.Positron,
group = "CartoDB",
options = providerTileOptions(opacity = 0.95)
) |>
addProviderTiles(
"Stamen.Terrain",
group = "Terrain",
options = providerTileOptions(opacity = 0.75)
) |>
addProviderTiles(
"Stamen.Toner",
group = "Toner",
options = providerTileOptions(opacity = 0.5)
) |>
addProviderTiles(
"Stamen.Watercolor",
group = "Watercolor",
options = providerTileOptions(opacity = 0.5)
) |>
# add a layers control
addLayersControl(
baseGroups = c("CartoDB", "Terrain", "Toner", "Watercolor"),
position = "topleft"
) |>
addMarkers(lng=0.102310, lat=51.772938, label="Home") |>
addCircleMarkers(data = shared_df, lng = ~lon, lat = ~lat, label = ~Company, color = ~pal(Company))
```
Row {data-height=300}
-------------------------------------
### Empathise
```{r 1, echo=FALSE}
skills <- read_excel("input.xlsx", sheet = "Skills")
radar.fun <- function (data, colour1, colour2){
radarchart(
df = data,
axistype = 0,
seg = 5,
pty = 16,
pcol = colour1,
plty = 1,
plwd = 2,
pfcol = colour2,
cglty = 3,
cglwd = 1,
cglcol = rgb(0,0,0,0.25),
centerzero = TRUE,
vlcex = 1.2
)
}
col1 <- c(rgb(1,0.4,0.4,0.95), rgb(1,0.6,0.2,0.95), rgb(0.8,0.8,0,0.95), rgb(0,0.8,0.4,0.95), rgb(0.2,0.6,1,0.95), rgb(0.4,0.4,1,0.95), rgb(0.7,0.4,1,0.95))
col2 <- c(rgb(1,0.4,0.4,0.5),rgb(1,0.6,0.2,0.5), rgb(0.8,0.8,0,0.5), rgb(0,0.8,0.4,0.5), rgb(0.2,0.6,1,0.5), rgb(0.4,0.4,1,0.5), rgb(0.7,0.4,1,0.5))
i <- 1
radar.fun(data = skills[,(((i-1)*5)+1):(((i-1)*5)+5)], colour1 = col1[i], colour2 = col2[i])
```
### Data Acquisition
```{r 2, echo=FALSE}
i <- i+1
radar.fun(data = skills[,(((i-1)*5)+1):(((i-1)*5)+5)], colour1 = col1[i], colour2 = col2[i])
```
### Data Preparation
```{r 3, echo=FALSE}
i <- i+1
radar.fun(data = skills[,(((i-1)*5)+1):(((i-1)*5)+5)], colour1 = col1[i], colour2 = col2[i])
```
### Modelling
```{r 4, echo=FALSE}
i <- i+1
radar.fun(data = skills[,(((i-1)*5)+1):(((i-1)*5)+5)], colour1 = col1[i], colour2 = col2[i])
```
### Visualisation
```{r 6, echo=FALSE}
i <- i+2
radar.fun(data = skills[,(((i-1)*5)+1):(((i-1)*5)+5)], colour1 = col1[i], colour2 = col2[i])
```
### Deployment
```{r 7, echo=FALSE}
i <- i+1
radar.fun(data = skills[,(((i-1)*5)+1):(((i-1)*5)+5)], colour1 = col1[i], colour2 = col2[i])
```
About
=====================================